]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
StContainer: simplify focus navigation
authorDan Winship <danw@gnome.org>
Mon, 7 Mar 2011 19:14:02 +0000 (14:14 -0500)
committerDan Winship <danw@gnome.org>
Tue, 8 Mar 2011 14:36:55 +0000 (09:36 -0500)
When navigating from a non-immediate descendant of a container, we
were attempting to use clutter_actor_get_transformed_position() to get
the exact position of that actor relative to the container, but this
did not really make sense, since we would be using the position of
the intermediate container when navigating back.

https://bugzilla.gnome.org/show_bug.cgi?id=644134

src/st/st-container.c

index 2f7d095b18bd635d71091daf30ffb5cc77684708..24430d040b96e7e779b6dccbf61b8ec01c94ff56 100644 (file)
@@ -646,23 +646,9 @@ st_container_navigate_focus (StWidget         *widget,
        * any child is inconsistently scaled, then the focus chain will
        * probably be unpredictable.
        */
-      if (from)
+      if (focus_child)
         {
-          if (from == focus_child)
-            clutter_actor_get_allocation_box (focus_child, &sort_data.box);
-          else
-            {
-              float cx, cy, fx, fy, fw, fh;
-
-              clutter_actor_get_transformed_position (CLUTTER_ACTOR (container), &cx, &cy);
-              clutter_actor_get_transformed_position (from, &fx, &fy);
-              clutter_actor_get_transformed_size (from, &fw, &fh);
-
-              sort_data.box.x1 = fx - cx;
-              sort_data.box.x2 = fx - cx + fw;
-              sort_data.box.y1 = fy - cy;
-              sort_data.box.y2 = fy - cy + fh;
-            }
+          clutter_actor_get_allocation_box (focus_child, &sort_data.box);
         }
       else
         {